package cn.wuxing.mediation.system.mapper;

import java.util.List;
import java.util.Map;

import cn.wuxing.mediation.system.domain.MessageNotifications;
import cn.wuxing.mediation.system.domain.vo.MessageNoticeVo;
import org.apache.ibatis.annotations.Param;

/**
 * 【请填写功能名称】Mapper接口
 * 
 * @author mediation
 * @date 2024-10-08
 */
public interface MessageNotificationsMapper
{
    /**
     * 查询【请填写功能名称】
     * 
     * @param id 【请填写功能名称】主键
     * @return 【请填写功能名称】
     */
    public MessageNotifications selectMessageNotificationsById(Long id);

    /**
     * 查询【请填写功能名称】列表
     * 
     * @param messageNotifications 【请填写功能名称】
     * @return 【请填写功能名称】集合
     */
    public List<MessageNotifications> selectMessageNotificationsList(MessageNotifications messageNotifications);

    /**
     * 新增【请填写功能名称】
     * 
     * @param messageNotifications 【请填写功能名称】
     * @return 结果
     */
    public int insertMessageNotifications(MessageNotifications messageNotifications);


    /**
     * 修改
     * @param messageNotifications
     * @return
     */
    int updateMessageNotifications(MessageNotifications messageNotifications);

    /**
     * 一般纠纷消息通知
     * @return
     */
    List<MessageNoticeVo> getDisputeNoticeOrdByMediator(@Param("userIds") Long[] userIds);

    List<MessageNoticeVo> getDisputeNoticePreByMediator(@Param("userIds") Long[] userIds);

    Long[] selectWindowIds(@Param("userId") Long userId);

//    List<Map<String, Object>> getDisputeNoticeWindowNot(@Param("windowIds") Long[] windows);
//
//    List<Map<String, Object>> getDisputeNoticeWindowOrd(@Param("windowIds") Long[] windows);

//    List<Map<String, Object>> getDisputeNoticeWindowPre(@Param("windowIds") Long[] windows);

    Long[] selectWindowIdsByAdmin();

    List<MessageNoticeVo> getDisputeNoticeWindowNot(@Param("windowIds")Long[] windowIds);

    List<MessageNoticeVo> getDisputeNoticeWindowOrd(@Param("windowIds")Long[] windowIds);

    List<MessageNoticeVo> getDisputeNoticeWindowPre(@Param("windowIds")Long[] windowIds);

    List<MessageNoticeVo> getDisputeNoticeSynthesisNot(@Param("userIds")Long[] userIds);

    Long[] selectSynthesisIds();

    Long[] selectSynthesisIdsByIdQu(@Param("userId")Long userId);

    Long[] selectSynthesisIdsByIdXiang(@Param("userId")Long userId);

    List<MessageNoticeVo> getDisputeNoticeSynthesisOrd(@Param("userIds")Long[] userIds);

    List<MessageNoticeVo> getDisputeNoticeSynthesisPre(@Param("userIds")Long[] userIds);

    Long[] selectMediators();

    Long[] selectTownshipCenter(@Param("userId") Long userId);

    List<MessageNoticeVo> getDisputeNoticeTownShipNot(@Param("townShipIds") Long[] townshipCenterIds);

    List<MessageNoticeVo> getDisputeNoticeTownShipOrd(@Param("townShipIds") Long[] townshipCenterIds);

    List<MessageNoticeVo> getDisputeNoticeTownShipPre(@Param("townShipIds") Long[] townshipCenterIds);

    int updateMessageNotificationsRead(@Param("noticeId") Long noticeId);
}
